Software-defined networking (SDN) allows network administrators to manage network services through abstraction of lower level functionality. One SDN strategy is to reduce network complexity by decoupling the control plane from the data plane. This can be achieved using an SDN controller to manage resource provisioning in a network, thereby alleviating processing load from the switching components. Notably, traffic engineering can be processing intensive for SDN controllers servicing large networks, as the computational complexity of optimization algorithms increase significantly as additional links are added to the network. Moreover, current optimization algorithms are typically purpose built to achieve a specific objective, e.g., max-min fairness, maximum throughput, etc., and are incapable of being dynamically adjusted to provide different performance characteristics, e.g., higher throughput versus higher quality of service (QoS). Accordingly, efficient SDN optimization algorithms that are capable of being dynamically adjusted to provide different performance characteristics are desired to obtain scalable SDN techniques for implementation in large/diverse networks.